Virtual reality (VR) systems provide an immersive experience for a user by simulating the user's presence in a computer-modeled environment, and facilitating user interaction with that environment. In typical VR implementations, the user wears a head-mounted display (HMD) that provides a stereoscopic display of the virtual environment. Some systems include sensors that track the user's head movement and hands, allowing the viewing direction to be varied in a natural way when the user turns their head about, and for the hands to provide input and, in some cases, be represented in the VR space. The latter allows the user to see a representation of the hands while grasping objects controlling movement within the virtual environment. Other conventional VR systems provide other types of input devices, such as specialized gloves or hand-held controllers fitted with accelerometers and other sensing devices, such as pressure-sensitive pads, joystick, trackball, or the like. More basic input devices may include gaming controllers keyboards, mice, or the like.
One challenge faced by VR system designers is providing a way for users to control their virtual movement within the virtual environment, while also providing a way for users to observe, and interact with, objects in the virtual environment, in a natural fashion. Oftentimes, the same user-input controls are used for both purposes, which makes interaction with the virtual environment unnatural for the user.
Conventional approaches to facilitating navigation in virtual environments include a “fly-through” approach in which the user controls velocity or accelerations of their movement thorough the virtual space, or a “select-and-zoom approach in which the user is provided a way to “grab” a point in the virtual environment and drag that point to vary the user's virtual position within the environment. Various control inputs, such as hand-gestures may be used to zoom the user's perspective inwards and outwards. A camera-in-hand approach to control the user's point-of-view may be used to navigate, in which the user may move the point of view as though a camera is in their hand. Another approach to navigation, macro navigation, involves changing the user's view of the virtual environment from an immersive perspective view to a top view or bird's eye view from a relatively high elevation, to display a map or aerial viewing mode in which the user may reposition their virtual location.
These, and other, approaches to navigation tend to be unnatural, inefficient, and disruptive to the immersive user experience that is sought after by VR system designers and users, since the user has to interrupt their interaction with the virtual environment to command movement, or vice-versa.
For these, and other, reasons, a practical solution is needed to support navigation and environment-interactivity in a virtual-reality environment.